const Router = require("koa-router");
const filesController = require("../controllers/filesController");
const router = new Router();
/**
 * @swagger
 * /api/upload:
 *   post:
 *     summary: 多文件上传（FormData）
 *     description: |
 *       ### 功能说明
 *       - 上传使用：multipart/form-data
 *       - 字段名：
 *       - -files, 类型：file
 *       - -userid: 用户ID, 类型：string
 *     tags: [File]
 */
router.post("/api/upload", filesController.uploadFile);// 多文件上传（FormData）
/**
 * @swagger
 * /file/{id}:
 *   get:
 *     summary: 通过文件ID获取静态资源
 *     description: |
 *       ### 功能说明
 *       - 根据文件唯一ID获取文件内容
 *       - 自动设置正确的Content-Type响应头
 *       - 支持浏览器内联预览或下载
 *     tags: [File]
 *     parameters:
 *       - name: id
 *         in: path
 *         description: 文件唯一标识符(UUID格式)
 *         required: true
 *         schema:
 *           type: string
 *           format: uuid
 *           example: "c0b542e9-ee41-416d-89ab-eedf08cda573"
 *     responses:
 *       200:
 *         description: 文件内容流
 *         content:
 *           application/octet-stream:
 *             schema:
 *               type: string
 *               format: binary
 *         headers:
 *           Content-Type:
 *             description: 文件实际MIME类型
 *             schema:
 *               type: string
 *               example: "image/png"
 *           Content-Disposition:
 *             description: 内容处置方式
 *             schema:
 *               type: string
 *               example: "inline; filename=\"example.png\""
 */
router.get('/file/:id', filesController.getFileById);// 通过文件ID获取静态资源
/**
 * @swagger
 * /api/getFileList:
 *   get:
 *     summary: 获取文件列表
 *     description: 获取文件列表
 *     tags: [File]
 *     responses:
 *       200:
 *         description: 文件列表
 *         content:
 *           application/json:
 *             schema:
 *               type: array
 */
router.post('/api/getFileList', filesController.getFileList);// 获取文件列表
router.post('/api/delete', filesController.deleteFile);// 删除文件

module.exports = router;